package com.tangyuan.live.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tangyuan.common.result.Result;
import com.tangyuan.common.result.ResultCodeEnum;
import com.tangyuan.live.entity.dto.LiveSaveDto;
import com.tangyuan.live.entity.vo.*;
import com.tangyuan.live.entity.dto.LiveQueryDto;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tangyuan.model.User;
import com.tangyuan.model.live.LiveRoom;

import java.util.List;

public interface LiveRoomService extends IService<LiveRoom> {


    Page<LiveRoomListVo> getLiveRoomList(LiveQueryDto dto);

    Page<MyLiveVo> getMyLiveList(Long userId, LiveQueryDto dto);

    Result<LiveRoomVo> createLiveRoom(Long userId, LiveSaveDto dto);

    Result<EndLiveVo> endLive(Long userId, Long roomId);

    Result<LiveRoom> getLiveRoomById(Long roomId);

    LiveRoomVo getLiveRoomVo(LiveRoom room,boolean flag);

    Result<ResultCodeEnum> createIMUser(User user);

    String generateUserSig(Long userId);

    Result<LiveUserMsgVo> getLiveUserMsg(Long userId, Long liveUserId,Long roomId);

    List<LiveRoom> getNoCloseLiveByUserIds(List<Long> userId,Integer status);
}
